﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//using HCCodeParser.Suggestions;
using DBSourceToolsLib.Suggestions;

namespace DBSourceToolsLib.Composite
{
    public enum FieldListType
    {
        Short,
        ShortNoSchema,
        Long
    }
    public interface IDBComposite
    {
        bool IsLeaf();
        void Add(IDBComposite oDBComposite);
        IEnumerator<IDBComposite> GetEnumerator();
        string GetName();
        string GetShortName();
        string GetDebugString(int iTabCount);
        List<string> BuildTypeKeys(DBCompositeType oDBCType);
        TreeNodeTag GetTreeNodeTag();
        List<Suggestion> BuildList(FieldListType oFieldListType, params DBCompositeType[] oDBCType);
        List<Suggestion> BuildFieldList(List<TableAndAlias> lstNames);
        DBCompositeType GetDBCompositeType();
    }
}
